Consumer and professional computer systems typically include software products such as word-processing applications, picture and movie management software, and other business applications. Some of these software products are installed by the system manufacturer while other products may be purchased and installed by users of the computer system. In the software marketplace, new products are generally introduced on a regular basis, but many users are often unaware of the newly available products, particularly those offered by small vendors. A user may also not know about products that perform potentially beneficial functions that are not provided by the software applications currently installed on the user's computer.
One way in which a user may learn about newly available or previously existing software products is by searching for a product based on the functionality it performs. For example, a user may want to purchase photo-editing or backup software, in which case the user may enter such terms into a search engine, hoping for relevant results. The search results and/or context-based advertisements delivered to the user may provide information regarding potentially beneficial software products. Another situation in which a user becomes aware of software products is when the user purchases a product from a vendor. The vendor may recommend similar or beneficial products based on the purchase history of that user and/or other buyers, search terms used by that buyer and/or other consumers, and/or products that may complement the purchased product.
These approaches, however, face several limitations in identifying and recommending a potentially useful product to a user that the user is likely to buy. For example, when a user searches for a product, the search may be limited to the user's knowledge of the available functionality. In other words, if the user is not aware of any product that meets a desired functionality, the user may not search for that functionality, and hence, may not learn about a potentially useful product. The recommendations provided by vendors are usually based only on the information available to a particular vendor, which, from a user's perspective can be incomplete. For example, a user may routinely buy software products from different vendors, and hence, a certain vendor, unaware of the user's overall purchases, may recommend a product that the user already owns. Accordingly, vendor-supplied recommendations may not be helpful or even relevant to some users. Therefore, there is a need for improved methods and systems that enable recommending software products that are potentially beneficial to users of computer systems based on more relevant and accurate data that currently used.